typedef struct {int rows; int cols; unsigned char* data;} sImage;
typedef struct {char *(statistica[8]);} STATISTICA;

FILE *bmpInput, *bmpOutput;
sImage originalImage;
sImage edgeImage;
unsigned long vectorSize;

long getImageInfo(FILE* inputFile, long offset, int numberOfChars);
void copyImageInfo(FILE* inputFile, FILE* outputFile);
void copyColorTable(FILE* inputFile, FILE* outputFile, int nColors);

void load_img();
void histograma(sImage originalImage, unsigned long	vectorSize);
int compare (const void * a, const void * b);
void sobel(sImage originalImage, sImage edgeImage, FILE *bmpOutput);
void oper_min(sImage originalImage, sImage edgeImage, FILE *bmpOutput);
void oper_med(sImage originalImage, sImage edgeImage, FILE *bmpOutput);
void oper_max(sImage originalImage, sImage edgeImage, FILE *bmpOutput);
void smoot(sImage originalImage, sImage edgeImage, FILE *bmpOutput);
int menu(int i);
void copia(sImage originalImage, sImage edgeImage, FILE *bmpOutput);
void oper_min2(sImage originalImage, sImage edgeImage, FILE *bmpOutput);
void intensidade(sImage originalImage, sImage edgeImage, FILE *bmpOutput);
void contraste(sImage originalImage, sImage edgeImage, FILE *bmpOutput);
